package com.interview.server.service;

import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import com.interview.server.domain.File;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件元数据Service接口
 * 
 * @author shaobin
 * @date 2021-03-29
 */
public interface IFileService {
    /**
     * 查询文件元数据
     * 
     * @param uuid 文件元数据ID
     * @return 文件元数据
     */
    public File selectFileByUuid(String uuid);

    /**
     * 根据UUID下载对应文件
     *
     * @param uuid 文件元数据ID
     * @throws IOException 文件不存在或文件读取失败时抛出异常
     */
    public void downloadFileByUuid(String uuid, OutputStream os) throws IOException;

    /**
     * 上传文件
     *
     * @param file 需要上传的文件
     * @return 文件的UUID
     */
    public String uploadFile(MultipartFile file) throws IOException;
}
